package com.zhuiYun.project.api.trend.service;

import com.zhuiYun.project.api.trend.entity.*;
import com.zhuiYun.project.common.response.CommonResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @ClassName TrendsController
 * @Description TODO 动态接口（uniapp动态 ）
 * @Author gpd
 * @Date 2023-04-07 下午 04:42
 **/
public interface TrendsService {

    /**
     * @Author gpd
     * @Description 动态上传图片和视频（用于uniapp动态）
     * @Date 2023-04-08 上午 09:37
     * @Return CommonResult
     * @param  file
     */
    CommonResult uploadImageAndVideo(MultipartFile file);

    /**
     * @Author gpd
     * @Description 新增用户发布的动态信息
     * @Date 2023-04-08 上午 10:18
     * @Return CommonResult

     */
    Integer saveUserTrends(TrendContent trendContent);

    /**
     * @Author gpd
     * @Description 查询所有用户发布的动态信息（用于uniapp动态）
     * @Date 2023-04-10 上午 11:43
     * @Return CommonResult
     * @param userId
     * @param trendId
     */
    CommonResult getUserTrend(Integer userId,Integer trendId);

    /**
     * @Author gpd
     * @Description 新增一级动态评论（uniapp动态）
     * @Date 2023-04-10 下午 07:23
     * @Return
     * @param
     */
    Integer saveFirstTrend(TrendComment trendComment);

    /**
     * @Author gpd
     * @Description 新增二级动态评论（uniapp动态）
     * @Date 2023-04-11 下午 01:47
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer saveSecondTrend(TrendComment trendComment);

    /**
     * @Author gpd
     * @Description 查询用户点赞表 根据用户id和动态id (uniapp 动态点赞查询)
     * @Date 2023-04-11 下午 07:31
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param tId
     * @param uId
     */
    List<TrendThumb> getTrendThumbByUserIdAndTrendId(Integer tId, Integer uId);

    /**
     * @Author gpd
     * @Description 删除点赞表中点赞信息 (uniapp 动态取消点赞）
     * @Date 2023-04-11 下午 07:42
     * @Return com.zhuiYun.project.common.response.CommonResult
     */
    Integer noThumbsUpState(TrendThumb trendThumb);

    /**
     * @Author gpd
     * @Description 用户点赞 （uniapp）
     * @Date 2023-04-11 下午 07:57
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer ThumbsUpState(TrendThumb trendThumb);

    /**
     * @Author gpd
     * @Description 删除动态一级评论和二级评论（uniapp动态）
     * @Date 2023-04-12 上午 09:20
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param  id
     */
    Integer deleteTrendById(Integer id);


    /**
     * @Author gpd
     * @Description 查询用户发布的所有动态
     * @Date 2023-04-17 下午 07:53
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    List<TrendContent> getUserTrends(Integer userId);

    /**
     * @Author gpd
     * @Description 查询用户选择的动态内容
     * @Date 2023-04-18 上午 09:12
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    TrendContent getUserSelectTrend(Integer id,Integer userId);

    /**
     * @Author gpd
     * @Description 动态评论点赞
     * @Date 2023-04-19 上午 10:31
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer thumbsCommentUpState(TrendCommentThumb trendCommentThumb);

    /**
     * @Author gpd
     * @Description 动态评论取消点赞
     * @Date 2023-04-19 上午 10:45
     * @Return com.zhuiYun.project.common.response.CommonResult

     */
    Integer noThumbsCommentUpState(TrendCommentThumb trendCommentThumb);

    /**
     * @Author gpd
     * @Description 查询用户发布的所有动态
     * @Date 2023-04-19 下午 04:16
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param userId
     */
    List<TrendContent> getToUserThrend(Integer userId);

    /**
     * @Author gpd
     * @Description 删除用户动态
     * @Date 2023-04-19 下午 04:34
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param id
     */
    Integer delUserTrend(Integer id);

    /**
     * @Author gpd
     * @Description 修改动态内容状态 公开 （uniapp我的动态内容）
     * @Date 2023-04-20 上午 09:34
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param id
     */
    Integer openTrend(Integer id);

    /**
     * @Author gpd
     * @Description 修改动态内容状态 私密uniapp我的动态内容）
     * * @Date 2023-04-20 上午 09:34
     * @Return com.zhuiYun.project.common.response.CommonResult
     * @param id

     */
    Integer privateTrend(Integer id);
}
